// 双指针 + 辅助函数
#include<string>
using namespace std;
class Solution
{
public:
    bool validPalindrome(string s)
    {
        int i = 0, j = s.size() - 1;
        bool del = true;
        while (i < j)
        {
            if (s[i] != s[j])
            {
                // 判断删哪个比较困难就都试试,添加一个辅助函数
                return _valid(s, i + 1, j) || _valid(s, i, j - 1);
            }
            i++, j--;
        }
        return true;
    }
    // 辅助函数
    bool _valid(const string &s, int i, int j)
    {
        while (i < j)
        {
            if (s[i++] != s[j--])
                return false;
        }
        return true;
    }
};